home *** CD-ROM | disk | FTP | other *** search
/ Fritz: All Fritz / All Fritz.zip / All Fritz / FILES / PROGIALS / PTUTOR2B.LZH / ENTYPES.PAS < prev    next >
Pascal/Delphi Source File  |  1988-01-15  |  2KB  |  56 lines

  1.                                 (* Chapter 8 - Program 1 *)
  2. program Enumerated_Types;
  3.  
  4. type Days = (Mon,Tue,Wed,Thu,Fri,Sat,Sun);
  5.      Time_Of_Day = (Morning,Afternoon,Evening,Night);
  6.  
  7. var  Day              : Days;
  8.      Time             : Time_Of_Day;
  9.      Regular_Rate     : real;
  10.      Evening_Premium  : real;
  11.      Night_Premium    : real;
  12.      Weekend_Premium  : real;
  13.      Total_Pay        : real;
  14.  
  15. begin  (* main program *)
  16.    Writeln('Pay rate table':33);
  17.    Writeln;
  18.    Write('  DAY        Morning  Afternoon');
  19.    Writeln('  Evening    Night');
  20.    Writeln;
  21.  
  22.    Regular_Rate := 12.00;     (* This is the normal pay rate *)
  23.    Evening_Premium := 1.10;   (* 10 percent extra for working late *)
  24.    Night_Premium := 1.33;     (* 33 percent extra for graveyard *)
  25.    Weekend_Premium := 1.25;   (* 25 percent extra for weekends *)
  26.  
  27.    for Day := Mon to Sun do begin
  28.       case Day of
  29.         Mon : Write('Monday   ');
  30.         Tue : Write('Tuesday  ');
  31.         Wed : Write('Wednesday');
  32.         Thu : Write('Thursday ');
  33.         Fri : Write('Friday   ');
  34.         Sat : Write('Saturday ');
  35.         Sun : Write('Sunday   ');
  36.       end;  (* of case statement *)
  37.  
  38.       for Time := Morning to Night do begin
  39.          case Time of
  40.            Morning   : Total_Pay := Regular_Rate;
  41.            Afternoon : Total_Pay := Regular_Rate;
  42.            Evening   : Total_Pay := Regular_Rate * Evening_Premium;
  43.            Night     : Total_Pay := Regular_Rate * Night_Premium;
  44.          end;  (* of case statement *)
  45.  
  46.          case Day of
  47.            Sat : Total_Pay := Total_Pay * Weekend_Premium;
  48.            Sun : Total_Pay := Total_Pay * Weekend_Premium;
  49.          end;  (* of case statement *)
  50.  
  51.          Write(Total_Pay:10:2);
  52.       end;  (* of "for Time" loop *)
  53.       Writeln;
  54.    end; (* of "for Day" loop *)
  55. end.  (* of main program *)
  56.